﻿using Model.BusinessModel.InPut;
using Model.BusinessModel.OutPut;
using Model.BusinessModel.OutPut.sys;
using Model.DomainModel.Sys;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Utility;

namespace DomainService.IService.Sys
{
    /// <summary>
    /// 公司服务接口
    /// </summary>
    public interface ISysCorporationService
    {
        /// <summary>
        /// 获取所有公司数据
        /// </summary>
        /// <param name="corporationKey">公司key</param>
        /// <returns></returns>
        List<SysCorporationOutPut> GetAllCorporation(string? corporationKey);

        /// <summary>
        /// 获取所有公司,select结构
        /// </summary>
        /// <param name="corporationKey">公司key</param>
        /// <returns></returns>
        List<SelectOutPut> GetAll(string? corporationKey);

        /// <summary>
        ///  获取公司下的系统
        /// </summary>
        /// <returns></returns>
        List<TreeOutPut> GetCorporationSystemList();

        /// <summary>
        /// 新增公司
        /// </summary>
        /// <param name="sysCorporation">公司数据</param>
        ReceiveStatus Insert(SysCorporation sysCorporation);

        /// <summary>
        /// 修改公司
        /// </summary>
        /// <param name="sysCorporation">公司数据</param>
        ReceiveStatus Update(SysCorporation sysCorporation);

        /// <summary>
        /// 设置公司是否启用
        /// </summary>
        /// <param name="updateCorporationIsOpenInPut">修改模型</param>
        ReceiveStatus SetCorporationIsOpen(UpdateIsOpenInPut updateCorporationIsOpenInPut);
    }
}
